"""
通用操作
"""

# 通用统计功能
my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
my_string = "helloworld"

# 统计容器长度
print(len(my_list))  # 5
print(len(my_tuple))  # 5
print(len(my_string))  # 10

# 统计容器最大元素
print(max(my_list))  # 5
print(max(my_tuple))  # 5
print(max(my_string))  # w

# 统计容器最小元素
print(min(my_list))  # 1
print(min(my_tuple))  # 1
print(min(my_string))  # d


# 容器的通用转换功能
my_string_to_list = list(my_string)
print(my_string)  # helloworld
print(my_string_to_list)  # ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']

my_list_to_str = str(my_list)
print(my_list)  # [1, 2, 3, 4, 5]
print(my_list_to_str)  # [1, 2, 3, 4, 5]

# 容器的排序
print(sorted(my_string))  # ['d', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
print(sorted(my_list))  # [1, 2, 3, 4, 5]
# 倒序排列
print(
    sorted(my_string, reverse=True)
)  # ['w', 'r', 'o', 'o', 'l', 'l', 'l', 'h', 'e', 'd']
print(sorted(my_list, reverse=True))  # [5, 4, 3, 2, 1]


# 准备列表
my_list = [["a", 33], ["b", 66], ["c", 99]]


# 排序，基于带名函数，定义排序规则
def choose_sort_key(element):
    return element[1]


my_list.sort(key=choose_sort_key, reverse=True)
print(my_list)


# 准备列表
my_list = [["a", 33], ["b", 66], ["c", 99]]

my_list.sort(key=lambda element: element[1], reverse=True)
print(my_list)
